﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//写一个函数打印arr数组的内容，不使用数组下标，使用指针。
//arr是一个整形一维数组。
//void Print(int str[],int sz)
//{
//	int* p = str;
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	Print(arr, sz);
//	return 0;
//}

//实现一个对整形数组的冒泡排序
//void Sort(int sz, int arr[])
//{
//	for (int i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - i - 1; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//			}
//		}
//	}
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//int main()
//{
//	int arr[10] = { 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	Sort(sz, arr);
//	return 0;
//}
//int main()
//{
//    struct Person
//    {
//        char name[20];
//        int age;
//        float height;
//    };
//    struct Person persons[3];  // 声明结构体数组
//
//    // 循环遍历结构体数组
//    for (int i = 0; i < 3; i++)
//    {
//        printf("Person %d:\n", i + 1);
//        scanf("%s", &persons[i].name);
//        scanf("%d", &persons[i].age);
//        scanf("%f", &persons[i].height);
//    }
//}
#include <stdio.h>

#include <stdio.h>

int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        int cnt1 = 0;
        int cnt2 = 0;
        int sum = 0;
        int num;
        double result;
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &num);
            if (num < 0)
            {
                cnt1++;
            }
            else if (num > 0)
            {
                sum += num;
                cnt2++;
            }
        }
        result = (float)sum / cnt2;
        printf("%d %0.1lf\n", cnt1, result);
    }


    return 0;
}